package cn.com.dcsgo.mapper;

import cn.com.dcsgo.domain.po.SysDictData;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 针对表【sys_dict_data(字典数据表)】的数据库操作Mapper
 *
 * @author Dcsgo
 * @since 24/5/2025 上午 9:12
 */
public interface SysDictDataMapper {

    int deleteByPrimaryKey(Long id);

    int insert(SysDictData record);

    int insertSelective(SysDictData record);

    SysDictData selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysDictData record);

    int updateByPrimaryKey(SysDictData record);

    /**
     * 根据字典类型删除字典数据
     *
     * @param dictType 字典类型
     * @return 受影响的行数
     */
    int deleteByDictType(@Param("dictType") String dictType);

    /**
     * 是否存在指定的字典类型和字典键值
     *
     * @param dictType  字典类型
     * @param dictValue 字典键值
     * @return 指定的字典类型和字典键值存在返回 true，否则返回 false
     */
    boolean hasDictTypeAndDictValue(@Param("dictType") String dictType, @Param("dictValue") Integer dictValue);

    /**
     * 根据字典类型获取字典数据
     *
     * @param dictType 字典类型
     * @return 字典类型关联的字典数据
     */
    List<SysDictData> selectByDictType(@Param("dictType") String dictType);

    /**
     * 查询所有字典数据
     *
     * @return 所有字典数据
     */
    List<SysDictData> selectAll();
}
